package com.eyas.business.service.role;

import com.eyas.business.model.jdbcEntity.table.RoleInfo;
import com.eyas.business.model.pojo.roleservice.MenuIndexDTO;
import com.eyas.business.model.pojo.roleservice.MenuTreeTableDTO;
import com.eyas.core.model.page.PageResult;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * @Auther: 王龙龙
 * @Date: 2019/2/26 15:45
 * @Description:
 */
public interface RoleService {
    /**
     * 加载菜单栏
     * @param session
     * @return
     */
    public List<MenuIndexDTO> queryMenuInfos(HttpSession session);

    /**
     * 查询所有的角色列表
     * @param rolename
     * @param validflag
     * @param page
     * @param limit
     * @return
     */
    public PageResult<RoleInfo> queryRoleInfo(String rolename, String validflag, int page, int limit);

    /**
     * save or update角色信息
     * @param roleInfo
     */
    public void saveRoleInfo(RoleInfo roleInfo);

    /**
     * 修改roleinf的有效状态，当从无效修改到有效时，需要先校验有效状态下的rolename是否重复
     * @param roleid
     */
    public void updateRoleInfoValidflag(int roleid);

    public RoleInfo getRoleInfoByID(int roleid);

    /**
     * 获取所有的roleinfo信息
     * @return
     */
    public List<RoleInfo> queryAll();

    /**
     * 查询角色下所有的菜单访问权限明细
     * @param roleid
     * @return
     */
    public PageResult<MenuTreeTableDTO> queryMenusByRoleId(int roleid);

    /**
     * 角色菜单权限更新
     * @param menuid
     * @param checkflag
     */
    public void changeMenuRole(int roleid,int menuid, boolean checkflag);
}
